//清除所有的根任务dom节点
function clear_all_task(){
	console.log("clear exist task");
	$("#902>div.task").remove();
	$("#901").empty();
	$("#902").empty();
	$("#904").empty();
}

//挂装一个dom内的所有任务
function append_task_dom(dom){
	var pid;
	var j=0;
	$(dom + " div.task").each(function(){
		pid=$(this).attr('data-parent');
		$(dom + " div.task[data-taskid=" + pid + "]").append($(dom + " div.task[data-parent=" + pid + "]"));
		console.log(j++);
	}); 
	return j;
}
//

//将dataGet数据挂装到页面中
function data_to_dom(dataGet){
	//			console.log(dataGet);
	if(dataGet.data){
		//					console.log(dataGet.data);
							console.time('生成任务DOM开始');
							items=dataGet.data;
							var length=items.length;
								var frag = document.createDocumentFragment();
								$.each(items,function(idx,item){ //生成所有任务，先放到任务挂装区
		//							console.log(item);//每个约5ms左右
		//先在frag中挂装，而后一次性挂装到DOM，以提高性能
									$(frag).append(new_task(item));
								});
								$("#904").append($(frag));//
		
								console.timeEnd('生成任务DOM结束');
								$("#904>div.task").hide();
		
		
								
								i=0;
								$.each(items,function(idx,item){ //所有任务依据自己的parnet挂装
									i++;
									console.log(item);//每个需15ms左右
									console.log($(frag));
									$(".task[data-taskid="+item.parent+"]").append($("#904 .task[data-taskid="+item.id+"]"));
									console.log(i+':'+length+':'+i/length+':'+Math.floor(i/length*100)+'%');
		//进度条
									$(".progress-bar").css("width",Math.floor(i/length*100)+'%');
								});	
		
								$('#btn_refresh_all i').removeClass('fa-spin');
							expend_icon_status();
							$("#901>div.task").show();
							$("#902>div.task").show();
							
							//关闭
		//					layer.close(index); 
							layer.close(loading); 
						}
}

function refresh_all_and_append(){
		
		var loading=layer.msg('正从服务器上加载数据，请稍候！', {icon: 16});
//		var loading = layer.load(2); //换了种风格
var htmlstr='<div  class="progress"><div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 2%;">60%  </div></div>';
$("#content_area").append(htmlstr);

//

		var i;
		var items;
		//查询参数加随机数，以取消缓存
		$.getJSON("/index.php/task/getall/"+Math.ceil(Math.random()*100), 
			function(dataGet) { 
//			console.log(dataGet);
				if(dataGet.data){
//					console.log(dataGet.data);
					console.time('生成任务DOM开始');
					items=dataGet.data;
					var length=items.length;
						var frag = document.createDocumentFragment();
						$.each(items,function(idx,item){ //生成所有任务，先放到任务挂装区
//							console.log(item);//每个约5ms左右
//先在frag中挂装，而后一次性挂装到DOM，以提高性能
							$(frag).append(new_task(item));
						});
						$("#904").append($(frag));//

						console.timeEnd('生成任务DOM结束');
						$("#904>div.task").hide();


						
						i=0;
                        $.each(items,function(idx,item){ //所有任务依据自己的parnet挂装
							i++;
							console.log(item);//每个需15ms左右
							console.log($(frag));
							$(".task[data-taskid="+item.parent+"]").append($("#904 .task[data-taskid="+item.id+"]"));
							console.log(i+':'+length+':'+i/length+':'+Math.floor(i/length*100)+'%');
//进度条
							$(".progress-bar").css("width",Math.floor(i/length*100)+'%');
						});	

						$('#btn_refresh_all i').removeClass('fa-spin');
					expend_icon_status();
					$("#901>div.task").show();
					$("#902>div.task").show();
					
					//关闭
//					layer.close(index); 
					layer.close(loading); 
				}
			}		
		);
		$('#btn_refresh_all i').addClass('fa-spin');  
}		

//取得节点后，组装成结构，生成DOM串，再挂装到几个主要节点
		var task_tree= new Array();
		var taskstr="";
		
function refresh_all_and_append2(){
		console.time("load");
		var loading=layer.msg('正从服务器上加载数据，请稍候！', {icon: 16});
//console.log("teamid="+teamid);
		var i;
		var items;
		var item1 = new Object;
		var item2 = new Object;
		var dataurl ="/index.php/task/getall/"+Math.ceil(Math.random()*100);
		if('undefined' !== typeof teamid){
			dataurl = "/index.php/team/get_team_task/"+teamid+"/"+Math.ceil(Math.random()*100);
		}
		$.getJSON(dataurl, 
			function(dataGet) { 
				if(dataGet.data){
					console.time('生成任务DOM开始');
					items=dataGet.data;
					var length=items.length;
						//var frag = document.createDocumentFragment();
						$.each(items,function(idx,item1){ //生成task数组
							item1.childs=new Array();
							task_tree[item1.id]=item1;
						});
//						console.log(task_tree);
						$.each(items,function(idx,item2){ //生成task_tree
	//						console.log(item2);
							if(typeof task_tree[item2.parent] == 'undefined'){
								var itemT = new Object;
								itemT.id = item2.parent;
								itemT.childs = new Array();
//								console.log(itemT.id);
								task_tree[item2.parent] = itemT;
							}
							task_tree[item2.parent].childs.push(item2.id);
						});
//						console.log(task_tree);
						task_tree_to_str(1);
						task_tree_to_str(2);
						task_tree_to_str(3);
//						console.log(taskstr);
						$("#904").append(taskstr);//
						$("#904 div.task").hide();
						$("#904>.task[data-taskid=1]>.task").appendTo($("#901"));
						$("#904>.task[data-taskid=2]>.task").appendTo($("#902"));
						$("#904>.task[data-taskid=3]>.task").appendTo($("#903"));
					 	$("#904>.task[data-taskid=5]>.task").appendTo($("#905"));
						$("#904>.task[data-taskid=7]>.task").appendTo($("#907"));
						$("#904>.task").remove();
						expend_icon_status();
						$("#901>div.task").show();
						$("#902>div.task").show();
						layer.close(loading);
						console.timeEnd("load");
				}
			});
		 
		
}

//2的copy,改用post方式，以取消缓存；并可动态设置查询参数，以想适用于各类页面取得任务
	function refresh_all_task_and_append(){

		console.time("load");
		var loading=layer.msg('正从服务器上加载数据，请稍候！', {icon: 16});
		var i;
		var items;
		var item1 = new Object;
		var item2 = new Object;
		
		var dataurl ="/index.php/task/getall/";
		var postdata;
		if('undefined' !== typeof teamid){
			dataurl = "/index.php/task/get_team_task/";
			postdata={
				team:teamid
			};
		}

		$.post(dataurl,postdata,function(dataGet) { 
												if(dataGet.data){
													clear_all_task();
													console.time('生成任务DOM开始');
													items=dataGet.data;
													var length=items.length;
														//var frag = document.createDocumentFragment();
														$.each(items,function(idx,item1){ //生成task数组
															item1.childs=new Array();
															task_tree[item1.id]=item1;
														});
								//						console.log(task_tree);
														$.each(items,function(idx,item2){ //生成task_tree
//															console.log(item2);
															if(typeof task_tree[item2.parent] == 'undefined'){
																var itemT = new Object;
																itemT.id = item2.parent;
																itemT.childs = new Array();
								//								console.log(itemT.id);
																task_tree[item2.parent] = itemT;
															}
															task_tree[item2.parent].childs.push(item2.id);
														});
														
								//						console.log(task_tree);
														task_tree_to_str(1);
														task_tree_to_str(2);
														task_tree_to_str(3);
                                                        task_tree_to_str(5);
								//						console.log(taskstr);
														$("#904").append(taskstr);//
														$("#904 div.task").hide();
														$("#904>.task[data-taskid=1]>.task").appendTo($("#901"));
														$("#904>.task[data-taskid=2]>.task").appendTo($("#902"));
														$("#904>.task[data-taskid=3]>.task").appendTo($("#903"));
                                                        $("#904>.task[data-taskid=5]>.task").appendTo($("#905"));
														$("#904>.task[data-taskid=7]>.task").appendTo($("#907"));
														$("#904>.task").remove();
														expend_icon_status();
														$("#901>div.task").show();
														$("#902>div.task").show();
                                                        $("#905>div.task").show();
														layer.close(loading);
														console.timeEnd("load");
												}
		},"json");	
	}



//2的copy，同时查询生成团队任务
function refresh_all_and_append2b(){
		console.time("load");
		var loading=layer.msg('正从服务器上加载数据，请稍候！', {icon: 16});

		var i;
		var items;
		var item1 = new Object;
		var item2 = new Object;

		$.getJSON("/index.php/task/get_all_and_team/"+Math.ceil(Math.random()*100), 
			function(dataGet) { 
				if(dataGet.data){
					console.time('生成任务DOM开始');
					items=dataGet.data;
					var length=items.length;
						//var frag = document.createDocumentFragment();
						$.each(items,function(idx,item1){ //生成task数组
							item1.childs=new Array();
							task_tree[item1.id]=item1;
						});
//						console.log(task_tree);
						$.each(items,function(idx,item2){ //生成task_tree
	//						console.log(item2);
							if(typeof task_tree[item2.parent] == 'undefined'){
								var itemT = new Object;
								itemT.id = item2.parent;
								itemT.childs = new Array();
//								console.log(itemT.id);
								task_tree[item2.parent] = itemT;
							}
							task_tree[item2.parent].childs.push(item2.id);
						});
//						console.log(task_tree);
						task_tree_to_str(1);
						task_tree_to_str(2);
						task_tree_to_str(3);
						task_tree_to_str(5);
//						console.log(taskstr);
						$("#904").append(taskstr);//
						$("#904 div.task").hide();
						$("#904>.task[data-taskid=1]>.task").appendTo($("#901"));
						$("#904>.task[data-taskid=2]>.task").appendTo($("#902"));
						$("#904>.task[data-taskid=3]>.task").appendTo($("#903"));
						$("#904>.task").remove();
						expend_icon_status();
						$("#901>div.task").show();
						$("#902>div.task").show();
						layer.close(loading);
						console.timeEnd("load");
				}
			});
		 
		
}		
//2的copy，用于取得团队任务并挂装
function refresh_teamtask_and_append2(){
		console.time("load team task");
		var loading=layer.msg('正从服务器上加载数据，请稍候！', {icon: 16});
		console.log("teamid=");
		var i;
		var items;
		var item1 = new Object;
		var item2 = new Object;

		$.getJSON("/index.php/task/get_team_task/"+Math.ceil(Math.random()*100), 
			function(dataGet) { 
				if(dataGet.data){
					console.time('生成任务DOM开始');
					items=dataGet.data;
					var length=items.length;
						//var frag = document.createDocumentFragment();
						$.each(items,function(idx,item1){ //生成task数组
							item1.childs=new Array();
							task_tree[item1.id]=item1;
						});
//						console.log(task_tree);
						$.each(items,function(idx,item2){ //生成task_tree
	//						console.log(item2);
							if(typeof task_tree[item2.parent] == 'undefined'){
								var itemT = new Object;
								itemT.id = item2.parent;
								itemT.childs = new Array();
//								console.log(itemT.id);
								task_tree[item2.parent] = itemT;
							}
							task_tree[item2.parent].childs.push(item2.id);
						});
//						console.log(task_tree);
						task_tree_to_str(1);
						task_tree_to_str(2);
						task_tree_to_str(3);
//						console.log(taskstr);
						$("#904").append(taskstr);//
						$("#904 div.task").hide();
						$("#904>.task[data-taskid=1]>.task").appendTo($("#901"));
						$("#904>.task[data-taskid=2]>.task").appendTo($("#902"));
						$("#904>.task[data-taskid=3]>.task").appendTo($("#903"));
						$("#904>.task").remove();
						expend_icon_status();
						$("#901>div.task").show();
						$("#902>div.task").show();
						layer.close(loading);
						console.timeEnd("load");
				}
			});
		 
		
}

		
//递归生成节点HTML字符串
function task_tree_to_str(id){
//	console.log(id);
//	console.log(task_tree[id]);
	if(!task_tree[id]){
		return;
	}
	
	taskstr+=(new_task2(task_tree[id]));
	var childs=task_tree[id].childs;
	$.each(childs,function(idx,child){
		task_tree_to_str(child);
		});
	taskstr+='</div>';
//	console.log(task_tree[id].title);
//	console.log(taskstr);
	return ;		
}


//只先加载顶层任务，待打开某个任务文件夹时再从任务挂装区加载其下层子节点,同时要修改节点展开事件
function refresh_all_and_append3(){
		
		var loading=layer.msg('正从服务器上加载数据，请稍候！', {icon: 16});
		var i;
		var items;
		$.getJSON("/index.php/task/getall/"+Math.ceil(Math.random()*100), 
			function(dataGet) { 
//			console.log(dataGet);
				if(dataGet.data){
//					console.log(dataGet.data);
					console.time('生成任务DOM开始');
					items=dataGet.data;
					var length=items.length;
						var frag = document.createDocumentFragment();
						$.each(items,function(idx,item){ //生成所有任务，先放到任务挂装区
							$(frag).append(new_task(item));
						});
						$("#904").append($(frag));//
						$("#904>div.task").hide();
						
/* 						$.each(items,function(idx,item){ //想将所有任务的有子任务的节点标色，但效率太低
							console.log(item);//每个需15ms左右							
							$("div.task[data-taskid="+item.parent+"]").attr("data-haschild",1);
						});	 */
						
					//	$(".task[data-taskid=1]").append($("#904 div.task[data-parent=1]"));
						$(".task[data-taskid=2]").append($("#904 div.task[data-parent=2]"));
					//	$(".task[data-taskid=3]").append($("#904 div.task[data-parent=3]"));
					$('#btn_refresh_all i').removeClass('fa-spin');
					//expend_icon_status();
					$("#901>div.task").show();
					$("#902>div.task").show();
					layer.close(loading); 
				}
			}		
		);
		
		$('#btn_refresh_all i').addClass('fa-spin');  
}
//通过循环，检测若不存在某个节点，则挂装		
function refresh_all_and_append1(){

		var parent;
		var element;
		var noappenditems=new Array;
		var items;
		var i=0;
		$.getJSON("/index.php/task/getall/", 
			function(get_result) { 
//			console.log(dataGet);
				if(get_result.data){
//					$("div.task[data-taskid="+id+"]"+" div").remove();
//					parentid=0;
//					console.log(dataGet.data);
					items=get_result.data;
					//console.log(items);
					while(items.length>0){
						i++;
						$.each(items,function(idx,item){ //对每一项任务
//							console.log(item);
							element = $(".task[data-taskid="+item.parent+"]"+' '+".task[data-taskid="+item.id+"]");
							parent = $(".task[data-taskid="+item.parent+"]");
							if(element.length>0){//如果已存在该任务
	//							items.splice(idx,1);
							}else{
								if(parent.length>0){//如果已存在父任务
									$(".task[data-taskid="+item.parent+"]").append(new_task(item));
									$(".task[data-taskid="+item.id+"]").css('display','none');
	//								items.splice(idx,1);
								}else{//如果没有父任务，则存到未挂装中
	//								console.log(item);
	//								console.log(idx);
									noappenditems.push(item);
								}
								
							}
							
							
						}); 
//						console.log(noappenditems);
						if(items.length==noappenditems.length||i>2){
							break;
						}
						items=noappenditems;//把未挂装的任务调出重做
						noappenditems=Array(0);
						
					}
					
					$('#btn_refresh_all i').removeClass('fa-spin');
					expend_icon_status();
				}else{
					console.log(get_result);
				}
			}		
		);
		$('#btn_refresh_all i').addClass('fa-spin');
}



$(document).ready(function() {

});